Cordova iOS使用心得(爬坑)

现在做个很老很老的项目,整个工程只有一个Controller,能想到这得多老的项目了吧,要集成Cordova,之前js交互实在很差,写一点爬坑过程
1、项目如果不是刚开始就集成Cordova,不建议使用官网那个教程,试了下,没成功
2、使用cocoapods安装的cordova 和插件

1
2
pod 'Cordova', '~> 4.5.4'
pod 'cordova-plugin-device', '~> 1.1.3'

3、使用官网教程新建demo,自己工程需要哪些插件,用官网命令在demo里面装上,platform里面www复制进项目
然后,将下面js原名称Run Script修改为Copy www directory;然后将show env那个选项去掉,最后将下面的代码字段复制到build phases:(如果h5放服务器,这段不需要)

1
NODEJS_PATH=/usr/local/bin; NVM_NODE_PATH=~/.nvm/versions/node/`nvm version 2>/dev/null`/bin; N_NODE_PATH=`find /usr/local/n/versions/node/* -maxdepth 0 -type d 2>/dev/null | tail -1`/bin; XCODE_NODE_PATH=`xcode-select --print-path`/usr/share/xcs/Node/bin; PATH=$NODEJS_PATH:$NVM_NODE_PATH:$N_NODE_PATH:$XCODE_NODE_PATH:$PATH && node cordova/lib/copy-www-build-step.js

4、将config.xml拖到工程
5、自己的Controller继承CDVViewController,创建的时候这样写,如果www本地调试的话

1
2
3
TestViewController *test = [[TestViewController alloc]init];
test.wwwFolderName = @"www";
test.startPage = @"index.html";

如果www放服务器,可以这样写

1
2
3
TestViewController *test = [[TestViewController alloc]init];
test.wwwFolderName = @"";
test.startPage = @"http://localhost/www/index.html";

我这个放在我本地搭建的服务器了,所以写localhost,改成自己服务器地址即可,切记:这样写,是打开safary打开的,需要在config.xml中修改

1
2
3
4
<!-- <allow-intent href="http://*/*" />-->
<!-- <allow-intent href="https://*/*" />-->
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />

这样基本可跑了。用的话去看官方怎么用就可以了,自定义插件一定要在config.xml中配上才行,例如我这个

1
2
3
4
<feature name="MyPlugin">
<param name="ios-package" value="MyPlugin" />
<param name="onload" value="true" />
</feature>

凭印象写,就这样